﻿function exist_pseudo(pseudo) {
	var XMLHttpRequestObject = false;
	if (window.XMLHttpRequest) {
		try {
			XMLHttpRequestObject = new XMLHttpRequest();
		}
		catch (e) {
			XMLHttpRequestObject = false;
		}
	} else if (window.ActiveXObject) {
		try {
			XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e) {
			XMLHttpRequestObject = false;
		}
	}
	
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("POST", "getContributeur.php", false);
		XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		XMLHttpRequestObject.send("pseudo="+pseudo);
		while (!(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200));
		if (XMLHttpRequestObject.responseText == "null"){
			return false;
		} else {
			return true;
		}
	}
	
	return false;
}

function verifChamps()
{
	var form = document.form_ajout;
	
	var date_split = form.naissance_ajout.value.split("-");
	var year = 1;
	var month = 1;
	var day = 1;
	
	if (date_split.length == 3)
	{
		var year = parseInt(date_split[0]);
		var month = parseInt(date_split[1]);
		var day = parseInt(date_split[2]);
	}
	
	var try_date = new Date(year, month, day);
	
	var nodeList = document.querySelectorAll(".erreur");
	for (var i = 0, length = nodeList.length; i < length; i++) {
		document.getElementById('texte').removeChild(nodeList[i]);
	}
	
	nodeList = document.querySelectorAll(".confirm");
	for (var i = 0, length = nodeList.length; i < length; i++) {
		document.getElementById('texte').removeChild(nodeList[i]);
	}
	
	var nouveau_p = document.createElement('p');
	nouveau_p.className = "erreur";
	var nouveau_txt = document.createTextNode("");
	var erreur = true;

	if (form.ident_ajout.value == "" ||
		form.mdp_ajout.value == "" ||
		form.Confirmmdp_ajout.value == "" ||
		form.nom_ajout.value == "" ||
		form.prenom_ajout.value == "" ||
		form.naissance_ajout.value == "")
	{
		nouveau_txt = document.createTextNode('Tous les champs doivent être remplis.');
	}
	else if (form.ident_ajout.value.length > 50)
	{
		nouveau_txt = document.createTextNode("L'identifiant du compte ne doit pas dépasser 50 caractères.");
		form.ident_ajout.focus();
	}
	else if (exist_pseudo(form.ident_ajout.value))
	{
		nouveau_txt = document.createTextNode("L'identifiant \"" + form.ident_ajout.value + "\" existe déjà. Veuillez en choisir un autre...");
		form.ident_ajout.focus();
	}
	else if (form.mdp_ajout.value != form.Confirmmdp_ajout.value)
	{
		nouveau_txt = document.createTextNode("Le mot de passe et sa confirmation doivent être identiques.");
		form.mdp_ajout.focus();
	}
	else if (form.nom_ajout.value.length > 50)
	{
		nouveau_txt = document.createTextNode("Le nom de l'utilisateur ne doit pas dépasser 50 caractères.");
		form.nom_ajout.focus();
	}
	else if (form.prenom_ajout.value.length > 50)
	{
		nouveau_txt = document.createTextNode("Le prénom de l'utilisateur ne doit pas dépasser 50 caractères.");
		form.nom_ajout.focus();
	}
	else if (!(try_date.getFullYear() == year && try_date.getMonth() == month && try_date.getDate() == day))
	{
		nouveau_txt1 = document.createTextNode("La date " + form.naissance_ajout.value + " n'existe pas, ou n'a pas le bon format.");
		nouveau_txt2 = document.createTextNode("Format : AAAA-MM-JJ.");
		form.naissance_ajout.focus();
		nouveau_p.appendChild(nouveau_txt1);
		nouveau_p.appendChild(document.createElement("br"));
		nouveau_p.appendChild(nouveau_txt2);
		document.getElementById('texte').insertBefore(nouveau_p, form);
		window.location.href = "#titreAjout";
		erreur = false;
	}
	else
	{
		form.submit();
		erreur = false;
	}
	
	if (erreur)
	{
		nouveau_p.appendChild(nouveau_txt);
		document.getElementById('texte').insertBefore(nouveau_p, form);
		window.location.href = "#titreAjout";
	}
}

/*
	Gestionnaire d'évènements
*/

function addListener(element, basename, handler) {
	if (element.addEventListener)
		element.addEventListener(basename, handler, false);
	else if (element.attachEvent)
		element.attachEvent('on' + basename, handler);//for IE
}

function iniEvenements() {
	addListener(document.form_ajout.creerCompte, 'click', verifChamps);
}

addListener(window, 'load', iniEvenements);
